home *** CD-ROM | disk | FTP | other *** search
-
- ' VHFPROP.BAS Calculates communications range and reliability
- ' for VHF terrestrial communications.
-
- 27 REM *** PROGRAM IS BASED ON EGLI
- 28 REM *** PROPAGATION MODEL DESCRIBED
- 29 REM *** IN "RADIO PROPAGATION ABOVE
- 30 REM *** 40 MC OVER IRREGULAR TERRAIN"
- 31 REM *** BY JOHN J. EGLI
- 32 REM *** PROC. IRE, OCTOBER 1957,
- 33 REM *** PP 1383-1391
- 34 REM ***
- 35 REM *** AND FURTHER DESCRIBED AND
- 36 REM *** VALIDATED IN "REVIEW OF
- 37 REM *** PROPAGATION IN THE 470-
- 38 REM *** 890 MHZ BAND WITH EMPHASIS
- 39 REM *** ON LAND MOBILE AND CELLULAR
- 40 REM *** SYSTEMS" BY F.H. PALMER,
- 41 REM *** COMMUNICATIONS RESEARCH CENTRE
- 42 REM *** REPORT NO. 1288, FEBRUARY 1976,
- 43 REM *** OTTAWA, ONTARIO (AVAILABLE
- 44 REM *** THROUGH N.T.I.S. AS N76-27450)
- 45 REM ***
-
- GOSUB TITLE
-
- MENU:
- CLS
-
- PRINT "╔═══════════════════════════════════════════════════════════════╗"
- PRINT "║ VHF TERRESTRIAL PROPAGATION - MODULE 3 ║"
- PRINT "╚═══════════════════════════════════════════════════════════════╝"
-
- 100 PRINT
- 105 PRINT "CHOOSE:"
- 106 PRINT
- 110 PRINT " 1) ENGLISH MEASURE "
- 115 PRINT " 2) METRIC MEASURE"
- 120 PRINT
- 125 INPUT " ENTER CHOICE 1 OR 2: "; UNITS%
- 130 IF UNITS% <> 1 THEN UNITS% = 2
-
-
-
- 155 PRINT
- 160 INPUT "ENTER FREQUENCY IN MHZ. "; F
- 170 IF F <= 0 THEN GOTO 160
- 180 REM CALCULATE STD DEVIATION(SIGMA) OF PATH LOSS
- 185 REM AND STORE AS S
- 190 S = (5.47 * .443429 * LOG(F)) - 3.22
- 195 PRINT
- 200 IF UNITS% = 1 THEN INPUT "ENTER TRANSMITTING ANTENNA HEIGHT (FEET): "; HT ELSE INPUT "ENTER TRANSMITTING ANTENNA HEIGHT (METERS): "; HT
- 202 IF UNITS% = 2 THEN HT = HT * 3.28
- 205 IF HT <= 0 THEN HT = 1E-09
- 210 PRINT
- 220 IF UNITS% = 1 THEN INPUT "ENTER RECEIVING ANTENNA HEIGHT (FEET): "; HR ELSE INPUT "ENTER RECEIVING ANTENNA HEIGHT (METERS): "; HR
- 222 IF UNITS% = 2 THEN HR = HR * 3.28
- 225 IF HR <= 0 THEN HR = 1E-09
- 230 IF HT >= 30 AND HR >= 30 THEN E = 1!
- 240 IF HT < 30 AND HR < 30 THEN E = 2! ELSE E = 3!
- 250 IF HT >= HR THEN H1 = HT: H2 = HR ELSE H1 = HR: H2 = HT
- 370 REM H1 IS H(T) IN EGLI MODEL
- 400 REM H2 IS H(R) IN EGLI MODEL
- 405 PRINT
- 410 PRINT "ENTER TRANSMITTER POWER OUTPUT IN WATTS: ";
- 420 INPUT PW
- 425 IF PW <= 0 THEN PW = 1E-09
- 430 P = 10 * (.43429 * LOG(PW / .001))
- 440 REM P IS NOW STORED IN DBM, REF 1 MW/50 OHMS
- 445 PRINT
- 450 PRINT "ENTER TRANSMITTING ANTENNA GAIN IN DB ABOVE ISOTROPIC: ";
- 460 INPUT G1
- 485 PRINT
- 490 PRINT "ENTER TRANSMITTER TRANSMISSION LINE LOSS"
- 500 PRINT "IN DB FOR LENGTH ACTUALLY USED-ENTER AS POSITIVE VALUE: ";
- 510 INPUT L1
- 505 PRINT
- 520 PRINT "ENTER ANY ADDITIONAL LOSSES BETWEEN TRANSMITTER AND ANTENNA"
- 530 PRINT "SUCH AS FILTERS, DUPLEXER OR RELAY LOSSES, IN DB. "
- 535 PRINT "IF NONE, ENTER 0 : ";
- 550 INPUT A
- 560 L1 = L1 + A
- 565 PRINT
- 570 PRINT "ENTER RECEIVING ANTENNA GAIN IN DB ABOVE ISOTROPIC: ";
- 580 INPUT G2
- 605 PRINT
- 610 PRINT "ENTER RECEIVING TRANSMISSION LINE LOSS IN DB."
- 620 PRINT "FOR LENGTH ACTUALLY USED: ";
- 630 INPUT L2
- 635 PRINT
- 640 PRINT "ENTER ANY ADDITIONAL LOSSES SUCH AS FILTERS, DUPLEXERS OR"
- 650 PRINT "RELAY LOSSES IN DB. IF NONE , ENTER 0 :";
- 660 INPUT B
- 670 L2 = L2 + B
- 675 PRINT
- 680 PRINT "ENTER REQUIRED RECEIVED SIGNAL POWER LEVEL IN dBm"
- 690 PRINT "AT RECEIVER INPUT. USE A VALUE REPRESENTATIVE "
- 700 PRINT "OF LEVEL NEEDED FOR GOOD OPERATIONAL S/N: ";
- 710 INPUT RP
- 715 IF RP > 0 THEN GOTO 675'only input levels less than 0 dBm are allowed
- 720 RU = 10 ^ ((RP + 107) / 20) 'convert to microvolts/50 ohms
- 735 R = RU * .000001
- 738 IF R <= 0 THEN R = 1E-09
- 740 R = 10 * .43429 * LOG(((R ^ 2) / 50) / .001)
- 750 REM R IS NOW STORED IN DBM
- 760 REM CALCULATE ALLOWABLE MEDIAN PATH LOSS IN DB
- 770 Q = P + G1 - L1 + G2 - L2 - R
- 776 REM ARRAY Q( ) TO START WITH 1
- 780 Q(1) = Q
- 790 Q(2) = Q - .53 * S
- 800 Q(3) = Q - 1.27 * S
- 810 Q(4) = Q - 1.65 * S
- 820 Q(5) = Q - 2.3 * S
- 830 Q(6) = Q - 3.05 * S
- 840 REM ALLOWABLE PATH LOSS FOR VARIOUS RELIABILITIES CALCULATED.
- 850 IF E = 1! THEN 900
- 860 IF E = 2! THEN 1000
- 870 IF E = 3! THEN 1000
- 880 PRINT "ERROR IN PGM LINE 0880"
- 900 FOR I = 1 TO 6 STEP 1
- 910 M(I) = Q(I) - 114.8 - (20 * .4342945 * LOG(F)) + (20 * .4342945 * LOG(H1)) + (20 * .4342945 * LOG(H2))
- 915 MM(I) = Q(I) - 36.6 - (20 * .4342945 * LOG(F))
- 920 N(I) = M(I) / 40
- 922 NN(I) = MM(I) / 20
- 925 IF NN(I) < N(I) THEN N(I) = NN(I)
- 930 D(I) = 10 ^ N(I)
- 933 D(I) = INT(D(I) * 100) / 100
- 935 NEXT I
- 940 GOTO 1100
- 1000 FOR I = 1 TO 6 STEP 1
- 1010 M(I) = Q(I) - 100! - (20 * .4342945 * LOG(F)) + (20 * .4342945 * LOG(H1)) + (10 * .4342945 * LOG(H2))
- 1015 MM(I) = Q(I) - 36.6 - (20 * .4342945 * LOG(F))
- 1020 N(I) = M(I) / 40
- 1023 NN(I) = MM(I) / 20
- 1025 IF NN(I) < N(I) THEN N(I) = NN(I)
- 1030 D(I) = 10 ^ N(I)
- 1033 D(I) = INT(D(I) * 100) / 100
- 1035 NEXT I
- 1040 GOTO 1100
- 1100 CLS :
- 1102 LOCATE 1, 1
- 1105 PRINT "╔═══════════════════════════════════════════════════════════════╗"
- 1106 PRINT "║ VHF TERRESTRIAL PROPAGATION - MODULE 3 ║"
- 1107 PRINT "╚═══════════════════════════════════════════════════════════════╝"
- 1110 PRINT
- 1120 PRINT USING "FREQUENCY = ###.# MHz"; F
- 1125 LOCATE 6, 32
- 1130 PRINT "TRANSMITTER RECEIVER"
- 1140 LOCATE 8, 1
- 1142 IF UNITS% = 1 THEN PRINT "ANTENNA HEIGHT (FEET)" ELSE PRINT "ANTENNA HEIGHT (METERS)"
- 1144 LOCATE 8, 32
- 1146 IF UNITS% = 1 THEN PRINT USING "#####.#"; HT ELSE PRINT USING " ####.#"; HT * .3048
- 1148 LOCATE 8, 47
- 1150 IF UNITS% = 1 THEN PRINT USING "#####.#"; HR ELSE PRINT USING " ####.#"; HR * .3048
- 1152 LOCATE 9, 1
- 1154 PRINT "ANTENNA GAIN (dBi)"
- 1156 LOCATE 9, 35
- 1158 PRINT USING "##.#"; G1
- 1160 LOCATE 9, 50
- 1162 PRINT USING "##.#"; G2
- 1164 LOCATE 10, 1
- 1166 PRINT "LINE AND FILTER LOSS (dB)"
- 1168 LOCATE 10, 35
- 1170 PRINT USING "##.#"; L1
- 1172 LOCATE 10, 50
- 1174 PRINT USING "##.#"; L2
- 1176 LOCATE 11, 1
- 1178 PRINT "POWER OUTPUT (WATT)"
- 1180 LOCATE 11, 32
- 1182 PRINT USING "#####"; PW
- 1184 LOCATE 12, 1
- 1186 PRINT "RECEIVED SIGNAL LEVEL (dBm)"
- 1188 LOCATE 12, 48
- 1190 PRINT USING "+###.#"; RP
- 1192 LOCATE 14, 32
- 1194 PRINT "RELIABILITY"
- 1196 LOCATE 14, 49
- 1198 IF UNITS% = 1 THEN PRINT "RANGE (MILES)" ELSE PRINT "RANGE (KM)"
- 1200 PRINT
- 1210 LOCATE 16, 35
- 1212 PRINT "50%"
- 1214 LOCATE 16, 49
- 1216 IF UNITS% = 1 THEN PRINT USING "###.#"; D(1) ELSE PRINT USING "###.#"; D(1) * .3048
- 1218 LOCATE 17, 35
- 1220 PRINT "75%"
- 1222 LOCATE 17, 49
- 1224 IF UNITS% = 1 THEN PRINT USING "###.#"; D(2) ELSE PRINT USING "###.#"; D(2) * .3048
- 1226 LOCATE 18, 35
- 1228 PRINT "90%"
- 1230 LOCATE 18, 49
- 1232 IF UNITS% = 1 THEN PRINT USING "###.#"; D(3) ELSE PRINT USING "###.#"; D(3) * .3048
- 1234 LOCATE 19, 35
- 1236 PRINT "95%"
- 1238 LOCATE 19, 49
- 1240 IF UNITS% = 1 THEN PRINT USING "###.#"; D(4) ELSE PRINT USING "###.#"; D(4) * .3048
- 1242 LOCATE 20, 35
- 1244 PRINT "99%"
- 1246 LOCATE 20, 49
- 1248 IF UNITS% = 1 THEN PRINT USING "###.#"; D(5) ELSE PRINT USING "###.#"; D(5) * .3048
- 1250 LOCATE 21, 35
- 1252 PRINT "99.9%"
- 1254 LOCATE 21, 49
- 1256 IF UNITS% = 1 THEN PRINT USING "###.#"; D(6) ELSE PRINT USING "###.#"; D(6) * .3048
- 1310 LOCATE 23, 1
- 1330 PRINT "CHOOSE: 1) MORE CALCULATIONS 2) QUIT"
- 1345 LOCATE 24, 45
- 1350 PRINT "ENTER CHOICE (1 or 2): ";
- 1355 INPUT CX
- 1360 IF CX = 1 THEN GOTO MENU ELSE GOTO ENDING
-
-
-
- ENDING:
-
- CLS
- PRINT
- LOCATE 10, 25
- PRINT "≡≡≡ PROGRAM COMPLETED ≡≡≡"
-
- END
-
-
-
- '╔═══════════════════════════════════════════════════════════╗
- '║ Program Authorship Notice ║
- '║ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ║
- '║ ║
- '║ Jacob Z. Schanker, P.E. ║
- '║ ║
- '║ ║
- '║ Last revised: July 1990 ║
- '║ ║
- '╚═══════════════════════════════════════════════════════════╝
-
- TITLE:
- 'opening screen for meteor burst programs
- CLS
-
- LOCATE 5, 25
- PRINT "Supplemental Computer Programs"
- LOCATE 6, 38
- PRINT "to"
- LOCATE 7, 27
- PRINT "METEOR BURST COMMUNICATION"
- LOCATE 9, 38
- PRINT "by"
- LOCATE 10, 31
- PRINT "Jacob Z. Schanker"
- LOCATE 14, 24
- PRINT "COPYRIGHT 1990 ARTECH HOUSE, INC."
- LOCATE 22, 25
- PRINT "<< Press any key to continue >>"
- WHILE INKEY$ = ""
- WEND
- CLS
- RETURN
-
-